www.gusucode.com > ROCKOA PHP协同办公OA办公系统 v2.0PHP源码程序 > ROCKOA PHP协同办公OA办公系统 v2.0/rockoa_v2.0/rockoa_v2.0/webrock/extjs/rock/option.js

    /**
	主页:http://www.xh829.com
	交流QQ群:429403774
	说明:免费开源软件,欢迎学习研究使用
	作者:雨中磐石(rainrock)
*/

Ext.define('Ext.rock.option', {
	win:false,
	wins:false,
	lx:0,
	bool:false,
	config:{
		rand:''
	},
	constructor: function (config){
		this.initConfig(config);
		if(!this.rand)this.rand=js.getrand();;
	},
	setoptionnum:'',
	settitlename:'',
	setlist:function(title,num, can, stype)
	{
		var me 		= this,canitems;
		var candev	= {qomnum:'',savecall:function(){},delcall:function(){}};//默认参数
		me.maincan 	= js.apply(candev, can);
		if(!stype)stype='win';
		var lx	= 0;
		if(!me.wins){
			me.liststore= Ext.create('Ext.data.Store', {
				fields:['name','value','values','num'],
				remoteSort: false,autoLoad: false,
				proxy: {
					type: 'ajax',extraParams:{mnum:''},
					url: js.getajaxurl('getdata','option','system'),
					reader: {type: 'json',root: 'rows'}
				}
			});
			me.rowEditing=Ext.create('Ext.grid.plugin.RowEditing', {
				clicksToMoveEditor: 1,autoCancel: false,saveBtnText:'确定',cancelBtnText:'取消'
			});
			
			canitems = {
				border:false,id:'goupshowmenuide_'+me.rand+'',roweditbool:true,store:me.liststore,
				xtype:'grid',height:300,columns:[{xtype: 'rownumberer',width:40},{
					text:'名称',flex:0.4,align:'center',dataIndex:'name',sortable:false,editor:'textfield',menuDisabled:true
				},{
					text:'对应值',flex:0.3,align:'center',dataIndex:'value',sortable:false,editor:'textfield',menuDisabled:true
				},{
					text:'编号',flex:0.3,align:'center',dataIndex:'num',sortable:false,editor:'textfield',menuDisabled:true
				}],
				bbar:[{
					text:'增',icon:gicons('add'),handler:function(){me.listadd()}
				},'-',{
					text:'删',icon:gicons('delete'),handler:function(){me.listdel()}
				},'-',{
					text:'刷新',icon:gicons('reload'),handler:function(){me.liststore.reload()}
				},'-',{
					text:'管理下级',icon:gicons('cog_edit'),handler:function(){me._guanlxiaji()}
				},'->',{
					xtype:'tbtext',id:'msg_'+me.rand+''
				},{
					text:'保存',icon:gicons('disk'),handler:function(){me.listsave()}
				}],
				plugins:[me.rowEditing],
				viewConfig:{
					enableTextSelection:true,
					plugins: [{
						ptype: 'gridviewdragdrop',
						dragText: '移动排序'
					}]
				}
			};
			
			if(stype=='win'){
				canitems.bbar.push('-');
				canitems.bbar.push({
					text:'取消',icon:gicons('cancel'),handler:function(){me.wins.hide()}
				});
				var cans = winopt({title: '设置',width:600,items: canitems,modal:true});
				me.wins = Ext.create('Ext.Window',cans);
			}
			lx	= 1;
		};
		
		me.setoptionnum	= num;
		me.settitlename = title;
		me.set_stype	= stype;
		if(stype=='win'){
			me.wins.show();
			me.wins.setTitle(title);
			me.initshow();
		}
		return canitems;
	},
	initshow:function(){
		var me = this;
		me.liststore.proxy.extraParams.mnum	= me.setoptionnum;
		me.listgrid	= getcmp('goupshowmenuide_'+me.rand+'');
		me.liststore.reload();
		getcmp('msg_'+this.rand+'').setText('拖动行可排序');
	},
	createitems:function(){
		var me = this;
	},
	listadd:function(){
		if(this.bool)return;
		var tocount	= this.liststore.data.items.length;
		this.rowEditing.cancelEdit();
		var devnum	= js.repempt(this.maincan.qomnum,'');
		if(!isempt(devnum))devnum+='_{rand}';
		this.liststore.insert(tocount,{name:'',value:'',id:'randooo_'+js.getrand()+'',num:devnum});
		this.rowEditing.startEdit(tocount, 0);
	},
	listdel:function(){
		if(this.bool)return;
		var sm = this.listgrid.getSelectionModel().getSelection();
		var len	= sm.length,me=this;
		if(len==0)return false;
		var sid	= sm[0].data.id;
		if(sid.indexOf('randooo_')<0){
			if(!confirm('确定要删除选中的行记录吗?'))return false;
			$.get(js.getajaxurl('del','option','system',{s:sid}),function(){
				me.maincan.delcall();
			});
		}
		this.rowEditing.cancelEdit();
		this.liststore.remove(sm);
	},
	listsave:function(){
		if(this.bool)return;
		var da	= this.liststore.data.items,me=this;
		var oi=0;
		var data={mnum:this.setoptionnum,title:this.settitlename};
		for(i=0; i<da.length; i++){
			var nda	= da[i].data;
			if(nda.id.indexOf('randooo_')>-1)nda.id='0';
			if(!isempt(nda.name)){
				data['name_'+oi+'']		= nda.name;
				data['value_'+oi+'']	= js.repempt(nda.value,'');
				data['num_'+oi+'']		= js.repempt(nda.num,'');//编号
				data['id_'+oi+'']		= nda.id;
				oi++;
			}
		}
		data['total']	= oi;
		if(oi==0)return;
		this.bool	= true
		me._setmsg('保存中...');
		getcmp('msg_'+me.rand+'').setText(js.getmsg('保存中...','#ff6600'));
		var me	= this;
		$.post(js.getajaxurl('savelist','option','system'),data,function(da){
			me.bool	= false;
			if(da=='success'){
				me._setmsg('保存成功','green');
				me.liststore.reload();
				me.maincan.savecall();//保存回传
			}else{
				me._setmsg(da);
			}
		});
	},
	_setmsg:function(txt, col){
		getcmp('msg_'+this.rand+'').setText(js.getmsg(txt,col));
	},
	_guanlxiaji:function(){
		if(this.bool)return;
		var sm = this.listgrid.getSelectionModel().getSelection();
		var len	= sm.length,me=this;
		if(len==0)return false;
		var num = sm[0].data.num;
		if(isempt(num)){
			me._setmsg('没有编号不能管理下级');
			return;
		}
		me.maincan.qomnum = num;
		me.setlist(me.settitlename,num,me.maincan, me.set_stype);
	}
})